class Pickable : public Persistent {
public :
	bool pick(Actor *owner, Actor *wearer);
	void drop(Actor *owner, Actor *wearer);
	virtual bool use(Actor *owner, Actor *wearer);
	static Pickable *create (TCODZip &zip);
protected :
	enum PickableType {
		HEALER,STATIC_BOLT,CONFUSER,OVERLOAD
	};
};

class Healer : public Pickable {
public :
	float amount; // how many hp

	Healer(float amount);
	bool use(Actor *owner, Actor *wearer);
	void load(TCODZip &zip);
	void save(TCODZip &zip);	
};

class StaticBolt : public Pickable {
public :
	float range,damage;
	StaticBolt(float range, float damage);
	bool use(Actor *owner, Actor *wearer);
	void load(TCODZip &zip);
	void save(TCODZip &zip);
};

class Confuser : public Pickable {
public :
	int nbTurns;
	float range;
	Confuser(int nbTurns, float range);
	bool use(Actor *owner, Actor *wearer);	
	void load(TCODZip &zip);
	void save(TCODZip &zip);
};

class Overload : public StaticBolt {
public :
	Overload(float range, float damage);
	bool use(Actor *owner, Actor *wearer);	
	void save(TCODZip &zip);	
};

